# -*- coding:utf-8 -*-
from django.db import models
from django.contrib.auth.models import User
import datetime


class ques_user(models.Model):
    class Meta:
        verbose_name=u'试题用户'
        verbose_name_plural = u'试题用户'

    user=models.OneToOneField(User)
    def __unicode__(self):
        return self.user.username

class kao_exam(models.Model):
    class Meta:
        verbose_name=u'试题集'
        verbose_name_plural = u'试题集'

    create_user=models.ManyToManyField(ques_user)
    exam_name=models.CharField(u'试题集名称',blank=False,null=False,max_length=50,help_text=u'试卷名称')
    qkind=models.IntegerField(u'考卷性质',blank=True,null=True,help_text=u'0:自主命题省份，1:全国大纲卷Ⅰ，2:全国大纲卷Ⅱ，3:全国大纲卷，4:新课标卷，5:新课标全国卷I，6:新课标全国卷Ⅱ')
    year_of_exam=models.DateField(u'考卷年份')
    is_active=models.BooleanField(u'是否可用',default=1)  #是否启用此题
    is_other_can_see=models.BooleanField(u'其他人可见',default=1)  #是否其他人可见
    question_order=models.TextField(u'题目的顺序',default=u'')    #题目的顺序,只是排没有父题的题目，材料题的子不参与排序 只用管理员重新排序了题目，该字段才有值
    post_time=models.DateTimeField(u'试卷发布时间',blank=True,null=True)


    def __unicode__(self):
        return self.exam_name

class kao_exam_area(models.Model):
    class Meta:
        verbose_name=u'试卷所属省份/直辖市'
        verbose_name_plural=u'试卷所属省份/直辖市'

    exam=models.ManyToManyField(kao_exam,verbose_name=u'试卷',blank=True,null=True)
    province=models.CharField(u'试卷所属省份/直辖市',max_length=50,default=u'')



class kao_question(models.Model):
    class Meta:
        verbose_name=u'题目'
        verbose_name_plural = u'题目'

    qbody=models.TextField(u'问题主体',blank=True,null=True,help_text=u'问题主体')
    qtype=models.IntegerField(u'问题类型',blank=True,null=True,help_text=u'问题类型1:单选 2：多选 3:填空 4:材料 5:判断 6：问答题')
    qkind=models.IntegerField(u'问题性质',blank=True,null=True,help_text=u'0:原始题库，1:本省，2:外省，3:老师自定义，4:模拟，5:国标1，6:国标2')
    KPoint=models.TextField(u'知识点',default=u'',blank=True,null=True,help_text=u'知识点')    #知识点的id，以';'分隔
    pic=models.TextField(u'图片路径',default=u'',blank=True,null=True,help_text=u'题目图片相关路径')
    qhins=models.TextField(u'提示',default=u'',blank=True,null=True,help_text=u'题目提示提示')
    author_original=models.CharField(u'原来作者',default=u'',blank=True,null=True,help_text=u'原来作者',max_length=30)
    author=models.ForeignKey(ques_user,verbose_name=u'作者')
    year_of_exam=models.DateTimeField(u'考题年份')
    qprovince=models.CharField(u'所属省份/直辖市',default=u'广东省',blank=True,null=True,max_length=50)
    is_active=models.BooleanField(u'是否可用',default=1)  #是否启用此题
    is_other_can_see=models.BooleanField(u'其他人可见',default=1)  #是否其他人可见
    post_time=models.DateTimeField(u'题目发布时间',blank=True,null=True)
    exam_id=models.ManyToManyField(kao_exam,verbose_name=u'所属试题集',blank=True,null=True)
    engry_point=models.IntegerField(u'能量值(5,4,3,2,1)',default=0,blank=True,null=True)#答中获取的能量,能令值分1-5，5级别能力最好，难度最高
    is_real=models.BooleanField(u'是否真题',default=0,blank=False,null=False)
    testing_centre=models.TextField(u'考点ID',blank=True,null=True,help_text=u'此题目的相关考点ID，每个ID以";"分隔')
    # finish_avg=models.FloatField(u'平均完成时间',blank=True,null=True)
    be_save_times=models.IntegerField(u'被学生保存次数',default=0,blank=True,null=True)
    father=models.CharField(u'父题目ID',max_length=100,default=u'',blank=True,null=True)
    ques_pack_id_list=models.TextField(u'材料题中子题目ID',default=u'',blank=True,null=True)    #以';'分隔
    answer_times=models.IntegerField(u'问题被答次数',default=0,blank=True,null=True)
    answer_correct_times=models.IntegerField(u'问题被答对次数',default=0,blank=True,null=True)
    teacher_give_point=models.FloatField(u'老师评分',default=0,blank=True,null=True)   #分值只是针对试卷真题（材料题主体不算分值，能做的题目算分值）
    tech_resource=models.TextField(u'题目资源路径',default='',blank=True,null=True)
    ipad_template=models.CharField(u'ipad上题目显示使用的模板',max_length=50,default=u'',blank=True,null=True)
    '''
    single-1：题目 答案都为字 00
    single-2：题目 答案都是图 11
    single-3：题目为字 答案为图 01
    single-4：题目为图 答案为字 10
    材料题全部都有材料主体和图
    material:材料题 50
    material-1：子题为选择题(题干和选项都是无图) 20
    material-2：子题为选择题(题干有图和选项无图)  22
    material-3：子题为选择题 但是选项是图（题干无图，选项有图） 21
    material-4：子题为选择题 但是选项是图（题干有图，选项有图）  23
    material-5：子题为填空题（题干无图，答案无图） 30
    material-6：子题为填空题（题干有图，答案无图） 32
    material-7：子题为问答题 （题干无图，答案无图）40
    material-8：子题为问答题 （题干有图，答案无图）42
    '''

    def __unicode__(self):
        return self.qbody

class kao_answer(models.Model):
    class Meta:
        verbose_name=u'答案'
        verbose_name_plural = u'答案'

    ques_id=models.ForeignKey(kao_question,verbose_name=u'问题')
    answerText=models.TextField(u'备选答案',blank=True,null=True,default=u'无备选答案')
    pic=models.TextField(u'备选答案图片路径',default=u'',blank=True,null=True,help_text=u'备选答案图片路径')
    is_correct=models.BooleanField(u'是否正确答案')
    corrent_answer=models.TextField(u'正确答案',default='',blank=True,null=True)

    def __unicode__(self):
        return self.answerText




class change_record(models.Model):
    '''
    注意题目的修改，包含了所属答案的修改
    '''
    class Meta:
        verbose_name=u'题目/考点/试卷的修改逻辑删除记录表'
        verbose_name_plural=u'题目/考点/试卷的修改逻辑删除记录表'

    change_userid=models.IntegerField(u'操作人的id',blank=True,null=True)
    change_username=models.CharField(u'操作用户名',max_length=50,default=u'',blank=True,null=True)
    change_id=models.IntegerField(u'题目/考点/试卷的id',blank=True,null=True)
    change_table=models.IntegerField(u'操作的表  1为题目 2为考点  3为试卷')
    change_type=models.IntegerField(u'操作的类型 1为修改 2为逻辑删除',default=1,blank=True,null=True)
    change_time=models.DateTimeField(u'操作时间')

    def __unicode__(self):
        return self.change_username






#--------------------------------------老师自定义----start---------------------------------------------------------------------


class kao_teacher_custom_exam(models.Model):
    class Meta:
        verbose_name=u'老师自定义的试题集'
        verbose_name_plural = u'老师自定义的试题集'

    create_user=models.ManyToManyField(ques_user)
    exam_name=models.CharField(u'试题集名称',blank=False,null=False,max_length=50,help_text=u'试卷名称')
    qkind=models.IntegerField(u'考卷性质',blank=True,null=True,help_text=u'0:老师自定义')
    year_of_exam=models.DateField(u'考卷年份')
    qprovince=models.CharField(u'所属省份/直辖市',default=u'广东省',blank=True,null=True,max_length=50)
    is_active=models.BooleanField(u'是否可用',default=1)  #是否启用此题
    is_other_can_see=models.BooleanField(u'其他人可见',default=1)  #是否其他人可见
    post_time=models.DateTimeField(u'试卷发布时间',blank=True,null=True)
    # exam_include_question=models.ManyToManyField('kao_question',null=True,blank=True)

    def __unicode__(self):
        return self.exam_name

class kao_teacher_custom_question(models.Model):
    class Meta:
        verbose_name=u'题目'
        verbose_name_plural = u'题目'

    qbody=models.TextField(u'问题主体',blank=True,null=True,help_text=u'问题主体')
    qtype=models.IntegerField(u'问题类型',blank=True,null=True,help_text=u'问题类型1:单选 2：多选 3:填空 4:材料 5:判断 6：问答题')
    qkind=models.IntegerField(u'问题性质',blank=True,null=True,help_text=u'0:老师自定义')
    KPoint=models.TextField(u'知识点',default=u'',blank=True,null=True,help_text=u'知识点')    #知识点的id，以';'分隔
    pic=models.TextField(u'图片路径',default=u'',blank=True,null=True,help_text=u'题目图片相关路径')
    qhins=models.TextField(u'提示',default=u'',blank=True,null=True,help_text=u'题目提示提示')
    author_original=models.CharField(u'原来作者',default=u'',blank=True,null=True,help_text=u'原来作者',max_length=30)
    author=models.ForeignKey(ques_user,verbose_name=u'作者')
    year_of_exam=models.DateTimeField(u'考题年份')
    qprovince=models.CharField(u'所属省份/直辖市',default=u'广东省',blank=True,null=True,max_length=50)
    is_active=models.BooleanField(u'是否可用',default=1)  #是否启用此题
    is_other_can_see=models.BooleanField(u'其他人可见',default=1)  #是否其他人可见
    post_time=models.DateTimeField(u'题目发布时间',blank=True,null=True)
    exam_id=models.ManyToManyField(kao_teacher_custom_exam,verbose_name=u'所属试题集',blank=True,null=True)
    engry_point=models.IntegerField(u'能量值(5,4,3,2,1)',default=0,blank=True,null=True)#答中获取的能量,能令值分1-5，5级别能力最好，难度最高
    is_real=models.BooleanField(u'是否真题',default=0,blank=False,null=False)
    testing_centre=models.TextField(u'考点ID',blank=True,null=True,help_text=u'此题目的相关考点ID，每个ID以";"分隔')
    # finish_avg=models.FloatField(u'平均完成时间',blank=True,null=True)
    be_save_times=models.IntegerField(u'被学生保存次数',default=0,blank=True,null=True)
    father=models.CharField(u'父题目ID',max_length=100,default=u'',blank=True,null=True)
    ques_pack_id_list=models.TextField(u'材料题中子题目ID',default=u'',blank=True,null=True)    #以';'分隔
    answer_times=models.IntegerField(u'问题被答次数',default=0,blank=True,null=True)
    answer_correct_times=models.IntegerField(u'问题被答对次数',default=0,blank=True,null=True)
    teacher_give_point=models.FloatField(u'老师评分',default=0,blank=True,null=True)
    tech_resource=models.TextField(u'题目资源路径',default='',blank=True,null=True)

    def __unicode__(self):
        return self.qbody

class kao_teacher_custom_answer(models.Model):
    class Meta:
        verbose_name=u'老师自定义答案'
        verbose_name_plural = u'老师自定义答案'

    ques_id=models.ForeignKey(kao_teacher_custom_question,verbose_name=u'问题')
    answerText=models.TextField(u'备选答案',blank=True,null=True,default=u'无备选答案')
    pic=models.TextField(u'备选答案图片路径',default=u'',blank=True,null=True,help_text=u'备选答案图片路径')
    is_correct=models.BooleanField(u'是否正确答案')
    corrent_answer=models.TextField(u'正确答案',default='',blank=True,null=True)

    def __unicode__(self):
        return self.answerText

class kao_homework_pack(models.Model):
    pass



#-------------------------------------------------------------end---------------------------------------------------


